home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / pipnss / nsIX509Cert.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  23KB  |  594 lines

  1. /*
  2.  * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIX509Cert.idl
  3.  */
  4.  
  5. #ifndef __gen_nsIX509Cert_h__
  6. #define __gen_nsIX509Cert_h__
  7.  
  8.  
  9. #ifndef __gen_nsISupports_h__
  10. #include "nsISupports.h"
  11. #endif
  12.  
  13. /* For IDL files that don't want to include root IDL files. */
  14. #ifndef NS_NO_VTABLE
  15. #define NS_NO_VTABLE
  16. #endif
  17. class nsIArray; /* forward declaration */
  18.  
  19. class nsIX509CertValidity; /* forward declaration */
  20.  
  21. class nsIASN1Object; /* forward declaration */
  22.  
  23.  
  24. /* starting interface:    nsIX509Cert */
  25. #define NS_IX509CERT_IID_STR "f0980f60-ee3d-11d4-998b-00b0d02354a0"
  26.  
  27. #define NS_IX509CERT_IID \
  28.   {0xf0980f60, 0xee3d, 0x11d4, \
  29.     { 0x99, 0x8b, 0x00, 0xb0, 0xd0, 0x23, 0x54, 0xa0 }}
  30.  
  31. /**
  32.  * This represents a X.509 certificate.
  33.  *
  34.  * @status FROZEN
  35.  */
  36. class NS_NO_VTABLE nsIX509Cert : public nsISupports {
  37.  public: 
  38.  
  39.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_IX509CERT_IID)
  40.  
  41.   /**
  42.    *  A nickname for the certificate.
  43.    */
  44.   /* readonly attribute AString nickname; */
  45.   NS_IMETHOD GetNickname(nsAString & aNickname) = 0;
  46.  
  47.   /**
  48.    *  The primary email address of the certificate, if present.
  49.    */
  50.   /* readonly attribute AString emailAddress; */
  51.   NS_IMETHOD GetEmailAddress(nsAString & aEmailAddress) = 0;
  52.  
  53.   /**
  54.    *  Obtain a list of all email addresses
  55.    *  contained in the certificate.
  56.    *
  57.    *  @param length The number of strings in the returned array.
  58.    *  @return An array of email addresses.
  59.    */
  60.   /* void getEmailAddresses (out unsigned long length, [array, size_is (length), retval] out wstring addresses); */
  61.   NS_IMETHOD GetEmailAddresses(PRUint32 *length, PRUnichar ***addresses) = 0;
  62.  
  63.   /**
  64.    *  Check whether a given address is contained in the certificate.
  65.    *  The comparison will convert the email address to lowercase.
  66.    *  The behaviour for non ASCII characters is undefined.
  67.    *
  68.    *  @param aEmailAddress The address to search for.
  69.    *                
  70.    *  @return True if the address is contained in the certificate.
  71.    */
  72.   /* boolean containsEmailAddress (in AString aEmailAddress); */
  73.   NS_IMETHOD ContainsEmailAddress(const nsAString & aEmailAddress, PRBool *_retval) = 0;
  74.  
  75.   /**
  76.    *  The subject owning the certificate.
  77.    */
  78.   /* readonly attribute AString subjectName; */
  79.   NS_IMETHOD GetSubjectName(nsAString & aSubjectName) = 0;
  80.  
  81.   /**
  82.    *  The subject's common name.
  83.    */
  84.   /* readonly attribute AString commonName; */
  85.   NS_IMETHOD GetCommonName(nsAString & aCommonName) = 0;
  86.  
  87.   /**
  88.    *  The subject's organization.
  89.    */
  90.   /* readonly attribute AString organization; */
  91.   NS_IMETHOD GetOrganization(nsAString & aOrganization) = 0;
  92.  
  93.   /**
  94.    *  The subject's organizational unit.
  95.    */
  96.   /* readonly attribute AString organizationalUnit; */
  97.   NS_IMETHOD GetOrganizationalUnit(nsAString & aOrganizationalUnit) = 0;
  98.  
  99.   /**
  100.    *  The fingerprint of the certificate's public key,
  101.    *  calculated using the SHA1 algorithm.
  102.    */
  103.   /* readonly attribute AString sha1Fingerprint; */
  104.   NS_IMETHOD GetSha1Fingerprint(nsAString & aSha1Fingerprint) = 0;
  105.  
  106.   /**
  107.    *  The fingerprint of the certificate's public key,
  108.    *  calculated using the MD5 algorithm.
  109.    */
  110.   /* readonly attribute AString md5Fingerprint; */
  111.   NS_IMETHOD GetMd5Fingerprint(nsAString & aMd5Fingerprint) = 0;
  112.  
  113.   /**
  114.    *  A human readable name identifying the hardware or
  115.    *  software token the certificate is stored on.
  116.    */
  117.   /* readonly attribute AString tokenName; */
  118.   NS_IMETHOD GetTokenName(nsAString & aTokenName) = 0;
  119.  
  120.   /**
  121.    *  The subject identifying the issuer certificate.
  122.    */
  123.   /* readonly attribute AString issuerName; */
  124.   NS_IMETHOD GetIssuerName(nsAString & aIssuerName) = 0;
  125.  
  126.   /**
  127.    *  The serial number the issuer assigned to this certificate.
  128.    */
  129.   /* readonly attribute AString serialNumber; */
  130.   NS_IMETHOD GetSerialNumber(nsAString & aSerialNumber) = 0;
  131.  
  132.   /**
  133.    *  The issuer subject's common name.
  134.    */
  135.   /* readonly attribute AString issuerCommonName; */
  136.   NS_IMETHOD GetIssuerCommonName(nsAString & aIssuerCommonName) = 0;
  137.  
  138.   /**
  139.    *  The issuer subject's organization.
  140.    */
  141.   /* readonly attribute AString issuerOrganization; */
  142.   NS_IMETHOD GetIssuerOrganization(nsAString & aIssuerOrganization) = 0;
  143.  
  144.   /**
  145.    *  The issuer subject's organizational unit.
  146.    */
  147.   /* readonly attribute AString issuerOrganizationUnit; */
  148.   NS_IMETHOD GetIssuerOrganizationUnit(nsAString & aIssuerOrganizationUnit) = 0;
  149.  
  150.   /**
  151.    *  The certificate used by the issuer to sign this certificate.
  152.    */
  153.   /* readonly attribute nsIX509Cert issuer; */
  154.   NS_IMETHOD GetIssuer(nsIX509Cert * *aIssuer) = 0;
  155.  
  156.   /**
  157.    *  This certificate's validity period.
  158.    */
  159.   /* readonly attribute nsIX509CertValidity validity; */
  160.   NS_IMETHOD GetValidity(nsIX509CertValidity * *aValidity) = 0;
  161.  
  162.   /**
  163.    *  A unique identifier of this certificate within the local storage.
  164.    */
  165.   /* readonly attribute string dbKey; */
  166.   NS_IMETHOD GetDbKey(char * *aDbKey) = 0;
  167.  
  168.   /**
  169.    *  A human readable identifier to label this certificate.
  170.    */
  171.   /* readonly attribute string windowTitle; */
  172.   NS_IMETHOD GetWindowTitle(char * *aWindowTitle) = 0;
  173.  
  174.   /**
  175.    *  Constants to classify the type of a certificate.
  176.    */
  177.   enum { UNKNOWN_CERT = 0U };
  178.  
  179.   enum { CA_CERT = 1U };
  180.  
  181.   enum { USER_CERT = 2U };
  182.  
  183.   enum { EMAIL_CERT = 4U };
  184.  
  185.   enum { SERVER_CERT = 8U };
  186.  
  187.   /**
  188.    *  Constants for certificate verification results.
  189.    */
  190.   enum { VERIFIED_OK = 0U };
  191.  
  192.   enum { NOT_VERIFIED_UNKNOWN = 1U };
  193.  
  194.   enum { CERT_REVOKED = 2U };
  195.  
  196.   enum { CERT_EXPIRED = 4U };
  197.  
  198.   enum { CERT_NOT_TRUSTED = 8U };
  199.  
  200.   enum { ISSUER_NOT_TRUSTED = 16U };
  201.  
  202.   enum { ISSUER_UNKNOWN = 32U };
  203.  
  204.   enum { INVALID_CA = 64U };
  205.  
  206.   enum { USAGE_NOT_ALLOWED = 128U };
  207.  
  208.   /**
  209.    *  Constants that describe the certified usages of a certificate.
  210.    */
  211.   enum { CERT_USAGE_SSLClient = 0U };
  212.  
  213.   enum { CERT_USAGE_SSLServer = 1U };
  214.  
  215.   enum { CERT_USAGE_SSLServerWithStepUp = 2U };
  216.  
  217.   enum { CERT_USAGE_SSLCA = 3U };
  218.  
  219.   enum { CERT_USAGE_EmailSigner = 4U };
  220.  
  221.   enum { CERT_USAGE_EmailRecipient = 5U };
  222.  
  223.   enum { CERT_USAGE_ObjectSigner = 6U };
  224.  
  225.   enum { CERT_USAGE_UserCertImport = 7U };
  226.  
  227.   enum { CERT_USAGE_VerifyCA = 8U };
  228.  
  229.   enum { CERT_USAGE_ProtectedObjectSigner = 9U };
  230.  
  231.   enum { CERT_USAGE_StatusResponder = 10U };
  232.  
  233.   enum { CERT_USAGE_AnyCA = 11U };
  234.  
  235.   /**
  236.    *  Obtain a list of certificates that contains this certificate 
  237.    *  and the issuing certificates of all involved issuers,
  238.    *  up to the root issuer.
  239.    *
  240.    *  @return The chain of certifficates including the issuers.
  241.    */
  242.   /* nsIArray getChain (); */
  243.   NS_IMETHOD GetChain(nsIArray **_retval) = 0;
  244.  
  245.   /**
  246.    *  Obtain an array of human readable strings describing
  247.    *  the certificate's certified usages.
  248.    *
  249.    *  @param ignoreOcsp Do not use OCSP even if it is currently activated.
  250.    *  @param verified The certificate verification result, see constants.
  251.    *  @param count The number of human readable usages returned.
  252.    *  @param usages The array of human readable usages.
  253.    */
  254.   /* void getUsagesArray (in boolean ignoreOcsp, out PRUint32 verified, out PRUint32 count, [array, size_is (count)] out wstring usages); */
  255.   NS_IMETHOD GetUsagesArray(PRBool ignoreOcsp, PRUint32 *verified, PRUint32 *count, PRUnichar ***usages) = 0;
  256.  
  257.   /**
  258.    *  Obtain a single comma separated human readable string describing
  259.    *  the certificate's certified usages.
  260.    *
  261.    *  @param ignoreOcsp Do not use OCSP even if it is currently activated.
  262.    *  @param verified The certificate verification result, see constants.
  263.    *  @param purposes The string listing the usages.
  264.    */
  265.   /* void getUsagesString (in boolean ignoreOcsp, out PRUint32 verified, out AString usages); */
  266.   NS_IMETHOD GetUsagesString(PRBool ignoreOcsp, PRUint32 *verified, nsAString & usages) = 0;
  267.  
  268.   /**
  269.    *  Verify the certificate for a particular usage.
  270.    *
  271.    *  @return The certificate verification result, see constants.
  272.    */
  273.   /* unsigned long verifyForUsage (in unsigned long usage); */
  274.   NS_IMETHOD VerifyForUsage(PRUint32 usage, PRUint32 *_retval) = 0;
  275.  
  276.   /**
  277.    *  This is the attribute which describes the ASN1 layout
  278.    *  of the certificate.  This can be used when doing a
  279.    *  "pretty print" of the certificate's ASN1 structure.
  280.    */
  281.   /* readonly attribute nsIASN1Object ASN1Structure; */
  282.   NS_IMETHOD GetASN1Structure(nsIASN1Object * *aASN1Structure) = 0;
  283.  
  284.   /**
  285.    *  Obtain a raw binary encoding of this certificate
  286.    *  in DER format.
  287.    *
  288.    *  @param length The number of bytes in the binary encoding.
  289.    *  @param data The bytes representing the DER encoded certificate.
  290.    */
  291.   /* void getRawDER (out unsigned long length, [array, size_is (length), retval] out octet data); */
  292.   NS_IMETHOD GetRawDER(PRUint32 *length, PRUint8 **data) = 0;
  293.  
  294.   /**
  295.    *  Test whether two certificate instances represent the 
  296.    *  same certificate.
  297.    *
  298.    *  @return Whether the certificates are equal
  299.    */
  300.   /* boolean equals (in nsIX509Cert other); */
  301.   NS_IMETHOD Equals(nsIX509Cert *other, PRBool *_retval) = 0;
  302.  
  303. };
  304.  
  305. /* Use this macro when declaring classes that implement this interface. */
  306. #define NS_DECL_NSIX509CERT \
  307.   NS_IMETHOD GetNickname(nsAString & aNickname); \
  308.   NS_IMETHOD GetEmailAddress(nsAString & aEmailAddress); \
  309.   NS_IMETHOD GetEmailAddresses(PRUint32 *length, PRUnichar ***addresses); \
  310.   NS_IMETHOD ContainsEmailAddress(const nsAString & aEmailAddress, PRBool *_retval); \
  311.   NS_IMETHOD GetSubjectName(nsAString & aSubjectName); \
  312.   NS_IMETHOD GetCommonName(nsAString & aCommonName); \
  313.   NS_IMETHOD GetOrganization(nsAString & aOrganization); \
  314.   NS_IMETHOD GetOrganizationalUnit(nsAString & aOrganizationalUnit); \
  315.   NS_IMETHOD GetSha1Fingerprint(nsAString & aSha1Fingerprint); \
  316.   NS_IMETHOD GetMd5Fingerprint(nsAString & aMd5Fingerprint); \
  317.   NS_IMETHOD GetTokenName(nsAString & aTokenName); \
  318.   NS_IMETHOD GetIssuerName(nsAString & aIssuerName); \
  319.   NS_IMETHOD GetSerialNumber(nsAString & aSerialNumber); \
  320.   NS_IMETHOD GetIssuerCommonName(nsAString & aIssuerCommonName); \
  321.   NS_IMETHOD GetIssuerOrganization(nsAString & aIssuerOrganization); \
  322.   NS_IMETHOD GetIssuerOrganizationUnit(nsAString & aIssuerOrganizationUnit); \
  323.   NS_IMETHOD GetIssuer(nsIX509Cert * *aIssuer); \
  324.   NS_IMETHOD GetValidity(nsIX509CertValidity * *aValidity); \
  325.   NS_IMETHOD GetDbKey(char * *aDbKey); \
  326.   NS_IMETHOD GetWindowTitle(char * *aWindowTitle); \
  327.   NS_IMETHOD GetChain(nsIArray **_retval); \
  328.   NS_IMETHOD GetUsagesArray(PRBool ignoreOcsp, PRUint32 *verified, PRUint32 *count, PRUnichar ***usages); \
  329.   NS_IMETHOD GetUsagesString(PRBool ignoreOcsp, PRUint32 *verified, nsAString & usages); \
  330.   NS_IMETHOD VerifyForUsage(PRUint32 usage, PRUint32 *_retval); \
  331.   NS_IMETHOD GetASN1Structure(nsIASN1Object * *aASN1Structure); \
  332.   NS_IMETHOD GetRawDER(PRUint32 *length, PRUint8 **data); \
  333.   NS_IMETHOD Equals(nsIX509Cert *other, PRBool *_retval); 
  334.  
  335. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  336. #define NS_FORWARD_NSIX509CERT(_to) \
  337.   NS_IMETHOD GetNickname(nsAString & aNickname) { return _to GetNickname(aNickname); } \
  338.   NS_IMETHOD GetEmailAddress(nsAString & aEmailAddress) { return _to GetEmailAddress(aEmailAddress); } \
  339.   NS_IMETHOD GetEmailAddresses(PRUint32 *length, PRUnichar ***addresses) { return _to GetEmailAddresses(length, addresses); } \
  340.   NS_IMETHOD ContainsEmailAddress(const nsAString & aEmailAddress, PRBool *_retval) { return _to ContainsEmailAddress(aEmailAddress, _retval); } \
  341.   NS_IMETHOD GetSubjectName(nsAString & aSubjectName) { return _to GetSubjectName(aSubjectName); } \
  342.   NS_IMETHOD GetCommonName(nsAString & aCommonName) { return _to GetCommonName(aCommonName); } \
  343.   NS_IMETHOD GetOrganization(nsAString & aOrganization) { return _to GetOrganization(aOrganization); } \
  344.   NS_IMETHOD GetOrganizationalUnit(nsAString & aOrganizationalUnit) { return _to GetOrganizationalUnit(aOrganizationalUnit); } \
  345.   NS_IMETHOD GetSha1Fingerprint(nsAString & aSha1Fingerprint) { return _to GetSha1Fingerprint(aSha1Fingerprint); } \
  346.   NS_IMETHOD GetMd5Fingerprint(nsAString & aMd5Fingerprint) { return _to GetMd5Fingerprint(aMd5Fingerprint); } \
  347.   NS_IMETHOD GetTokenName(nsAString & aTokenName) { return _to GetTokenName(aTokenName); } \
  348.   NS_IMETHOD GetIssuerName(nsAString & aIssuerName) { return _to GetIssuerName(aIssuerName); } \
  349.   NS_IMETHOD GetSerialNumber(nsAString & aSerialNumber) { return _to GetSerialNumber(aSerialNumber); } \
  350.   NS_IMETHOD GetIssuerCommonName(nsAString & aIssuerCommonName) { return _to GetIssuerCommonName(aIssuerCommonName); } \
  351.   NS_IMETHOD GetIssuerOrganization(nsAString & aIssuerOrganization) { return _to GetIssuerOrganization(aIssuerOrganization); } \
  352.   NS_IMETHOD GetIssuerOrganizationUnit(nsAString & aIssuerOrganizationUnit) { return _to GetIssuerOrganizationUnit(aIssuerOrganizationUnit); } \
  353.   NS_IMETHOD GetIssuer(nsIX509Cert * *aIssuer) { return _to GetIssuer(aIssuer); } \
  354.   NS_IMETHOD GetValidity(nsIX509CertValidity * *aValidity) { return _to GetValidity(aValidity); } \
  355.   NS_IMETHOD GetDbKey(char * *aDbKey) { return _to GetDbKey(aDbKey); } \
  356.   NS_IMETHOD GetWindowTitle(char * *aWindowTitle) { return _to GetWindowTitle(aWindowTitle); } \
  357.   NS_IMETHOD GetChain(nsIArray **_retval) { return _to GetChain(_retval); } \
  358.   NS_IMETHOD GetUsagesArray(PRBool ignoreOcsp, PRUint32 *verified, PRUint32 *count, PRUnichar ***usages) { return _to GetUsagesArray(ignoreOcsp, verified, count, usages); } \
  359.   NS_IMETHOD GetUsagesString(PRBool ignoreOcsp, PRUint32 *verified, nsAString & usages) { return _to GetUsagesString(ignoreOcsp, verified, usages); } \
  360.   NS_IMETHOD VerifyForUsage(PRUint32 usage, PRUint32 *_retval) { return _to VerifyForUsage(usage, _retval); } \
  361.   NS_IMETHOD GetASN1Structure(nsIASN1Object * *aASN1Structure) { return _to GetASN1Structure(aASN1Structure); } \
  362.   NS_IMETHOD GetRawDER(PRUint32 *length, PRUint8 **data) { return _to GetRawDER(length, data); } \
  363.   NS_IMETHOD Equals(nsIX509Cert *other, PRBool *_retval) { return _to Equals(other, _retval); } 
  364.  
  365. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  366. #define NS_FORWARD_SAFE_NSIX509CERT(_to) \
  367.   NS_IMETHOD GetNickname(nsAString & aNickname) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNickname(aNickname); } \
  368.   NS_IMETHOD GetEmailAddress(nsAString & aEmailAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmailAddress(aEmailAddress); } \
  369.   NS_IMETHOD GetEmailAddresses(PRUint32 *length, PRUnichar ***addresses) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmailAddresses(length, addresses); } \
  370.   NS_IMETHOD ContainsEmailAddress(const nsAString & aEmailAddress, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ContainsEmailAddress(aEmailAddress, _retval); } \
  371.   NS_IMETHOD GetSubjectName(nsAString & aSubjectName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubjectName(aSubjectName); } \
  372.   NS_IMETHOD GetCommonName(nsAString & aCommonName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCommonName(aCommonName); } \
  373.   NS_IMETHOD GetOrganization(nsAString & aOrganization) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrganization(aOrganization); } \
  374.   NS_IMETHOD GetOrganizationalUnit(nsAString & aOrganizationalUnit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrganizationalUnit(aOrganizationalUnit); } \
  375.   NS_IMETHOD GetSha1Fingerprint(nsAString & aSha1Fingerprint) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSha1Fingerprint(aSha1Fingerprint); } \
  376.   NS_IMETHOD GetMd5Fingerprint(nsAString & aMd5Fingerprint) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMd5Fingerprint(aMd5Fingerprint); } \
  377.   NS_IMETHOD GetTokenName(nsAString & aTokenName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTokenName(aTokenName); } \
  378.   NS_IMETHOD GetIssuerName(nsAString & aIssuerName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssuerName(aIssuerName); } \
  379.   NS_IMETHOD GetSerialNumber(nsAString & aSerialNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialNumber(aSerialNumber); } \
  380.   NS_IMETHOD GetIssuerCommonName(nsAString & aIssuerCommonName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssuerCommonName(aIssuerCommonName); } \
  381.   NS_IMETHOD GetIssuerOrganization(nsAString & aIssuerOrganization) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssuerOrganization(aIssuerOrganization); } \
  382.   NS_IMETHOD GetIssuerOrganizationUnit(nsAString & aIssuerOrganizationUnit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssuerOrganizationUnit(aIssuerOrganizationUnit); } \
  383.   NS_IMETHOD GetIssuer(nsIX509Cert * *aIssuer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssuer(aIssuer); } \
  384.   NS_IMETHOD GetValidity(nsIX509CertValidity * *aValidity) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValidity(aValidity); } \
  385.   NS_IMETHOD GetDbKey(char * *aDbKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDbKey(aDbKey); } \
  386.   NS_IMETHOD GetWindowTitle(char * *aWindowTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWindowTitle(aWindowTitle); } \
  387.   NS_IMETHOD GetChain(nsIArray **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChain(_retval); } \
  388.   NS_IMETHOD GetUsagesArray(PRBool ignoreOcsp, PRUint32 *verified, PRUint32 *count, PRUnichar ***usages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsagesArray(ignoreOcsp, verified, count, usages); } \
  389.   NS_IMETHOD GetUsagesString(PRBool ignoreOcsp, PRUint32 *verified, nsAString & usages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsagesString(ignoreOcsp, verified, usages); } \
  390.   NS_IMETHOD VerifyForUsage(PRUint32 usage, PRUint32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->VerifyForUsage(usage, _retval); } \
  391.   NS_IMETHOD GetASN1Structure(nsIASN1Object * *aASN1Structure) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetASN1Structure(aASN1Structure); } \
  392.   NS_IMETHOD GetRawDER(PRUint32 *length, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRawDER(length, data); } \
  393.   NS_IMETHOD Equals(nsIX509Cert *other, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Equals(other, _retval); } 
  394.  
  395. #if 0
  396. /* Use the code below as a template for the implementation class for this interface. */
  397.  
  398. /* Header file */
  399. class nsX509Cert : public nsIX509Cert
  400. {
  401. public:
  402.   NS_DECL_ISUPPORTS
  403.   NS_DECL_NSIX509CERT
  404.  
  405.   nsX509Cert();
  406.  
  407. private:
  408.   ~nsX509Cert();
  409.  
  410. protected:
  411.   /* additional members */
  412. };
  413.  
  414. /* Implementation file */
  415. NS_IMPL_ISUPPORTS1(nsX509Cert, nsIX509Cert)
  416.  
  417. nsX509Cert::nsX509Cert()
  418. {
  419.   /* member initializers and constructor code */
  420. }
  421.  
  422. nsX509Cert::~nsX509Cert()
  423. {
  424.   /* destructor code */
  425. }
  426.  
  427. /* readonly attribute AString nickname; */
  428. NS_IMETHODIMP nsX509Cert::GetNickname(nsAString & aNickname)
  429. {
  430.     return NS_ERROR_NOT_IMPLEMENTED;
  431. }
  432.  
  433. /* readonly attribute AString emailAddress; */
  434. NS_IMETHODIMP nsX509Cert::GetEmailAddress(nsAString & aEmailAddress)
  435. {
  436.     return NS_ERROR_NOT_IMPLEMENTED;
  437. }
  438.  
  439. /* void getEmailAddresses (out unsigned long length, [array, size_is (length), retval] out wstring addresses); */
  440. NS_IMETHODIMP nsX509Cert::GetEmailAddresses(PRUint32 *length, PRUnichar ***addresses)
  441. {
  442.     return NS_ERROR_NOT_IMPLEMENTED;
  443. }
  444.  
  445. /* boolean containsEmailAddress (in AString aEmailAddress); */
  446. NS_IMETHODIMP nsX509Cert::ContainsEmailAddress(const nsAString & aEmailAddress, PRBool *_retval)
  447. {
  448.     return NS_ERROR_NOT_IMPLEMENTED;
  449. }
  450.  
  451. /* readonly attribute AString subjectName; */
  452. NS_IMETHODIMP nsX509Cert::GetSubjectName(nsAString & aSubjectName)
  453. {
  454.     return NS_ERROR_NOT_IMPLEMENTED;
  455. }
  456.  
  457. /* readonly attribute AString commonName; */
  458. NS_IMETHODIMP nsX509Cert::GetCommonName(nsAString & aCommonName)
  459. {
  460.     return NS_ERROR_NOT_IMPLEMENTED;
  461. }
  462.  
  463. /* readonly attribute AString organization; */
  464. NS_IMETHODIMP nsX509Cert::GetOrganization(nsAString & aOrganization)
  465. {
  466.     return NS_ERROR_NOT_IMPLEMENTED;
  467. }
  468.  
  469. /* readonly attribute AString organizationalUnit; */
  470. NS_IMETHODIMP nsX509Cert::GetOrganizationalUnit(nsAString & aOrganizationalUnit)
  471. {
  472.     return NS_ERROR_NOT_IMPLEMENTED;
  473. }
  474.  
  475. /* readonly attribute AString sha1Fingerprint; */
  476. NS_IMETHODIMP nsX509Cert::GetSha1Fingerprint(nsAString & aSha1Fingerprint)
  477. {
  478.     return NS_ERROR_NOT_IMPLEMENTED;
  479. }
  480.  
  481. /* readonly attribute AString md5Fingerprint; */
  482. NS_IMETHODIMP nsX509Cert::GetMd5Fingerprint(nsAString & aMd5Fingerprint)
  483. {
  484.     return NS_ERROR_NOT_IMPLEMENTED;
  485. }
  486.  
  487. /* readonly attribute AString tokenName; */
  488. NS_IMETHODIMP nsX509Cert::GetTokenName(nsAString & aTokenName)
  489. {
  490.     return NS_ERROR_NOT_IMPLEMENTED;
  491. }
  492.  
  493. /* readonly attribute AString issuerName; */
  494. NS_IMETHODIMP nsX509Cert::GetIssuerName(nsAString & aIssuerName)
  495. {
  496.     return NS_ERROR_NOT_IMPLEMENTED;
  497. }
  498.  
  499. /* readonly attribute AString serialNumber; */
  500. NS_IMETHODIMP nsX509Cert::GetSerialNumber(nsAString & aSerialNumber)
  501. {
  502.     return NS_ERROR_NOT_IMPLEMENTED;
  503. }
  504.  
  505. /* readonly attribute AString issuerCommonName; */
  506. NS_IMETHODIMP nsX509Cert::GetIssuerCommonName(nsAString & aIssuerCommonName)
  507. {
  508.     return NS_ERROR_NOT_IMPLEMENTED;
  509. }
  510.  
  511. /* readonly attribute AString issuerOrganization; */
  512. NS_IMETHODIMP nsX509Cert::GetIssuerOrganization(nsAString & aIssuerOrganization)
  513. {
  514.     return NS_ERROR_NOT_IMPLEMENTED;
  515. }
  516.  
  517. /* readonly attribute AString issuerOrganizationUnit; */
  518. NS_IMETHODIMP nsX509Cert::GetIssuerOrganizationUnit(nsAString & aIssuerOrganizationUnit)
  519. {
  520.     return NS_ERROR_NOT_IMPLEMENTED;
  521. }
  522.  
  523. /* readonly attribute nsIX509Cert issuer; */
  524. NS_IMETHODIMP nsX509Cert::GetIssuer(nsIX509Cert * *aIssuer)
  525. {
  526.     return NS_ERROR_NOT_IMPLEMENTED;
  527. }
  528.  
  529. /* readonly attribute nsIX509CertValidity validity; */
  530. NS_IMETHODIMP nsX509Cert::GetValidity(nsIX509CertValidity * *aValidity)
  531. {
  532.     return NS_ERROR_NOT_IMPLEMENTED;
  533. }
  534.  
  535. /* readonly attribute string dbKey; */
  536. NS_IMETHODIMP nsX509Cert::GetDbKey(char * *aDbKey)
  537. {
  538.     return NS_ERROR_NOT_IMPLEMENTED;
  539. }
  540.  
  541. /* readonly attribute string windowTitle; */
  542. NS_IMETHODIMP nsX509Cert::GetWindowTitle(char * *aWindowTitle)
  543. {
  544.     return NS_ERROR_NOT_IMPLEMENTED;
  545. }
  546.  
  547. /* nsIArray getChain (); */
  548. NS_IMETHODIMP nsX509Cert::GetChain(nsIArray **_retval)
  549. {
  550.     return NS_ERROR_NOT_IMPLEMENTED;
  551. }
  552.  
  553. /* void getUsagesArray (in boolean ignoreOcsp, out PRUint32 verified, out PRUint32 count, [array, size_is (count)] out wstring usages); */
  554. NS_IMETHODIMP nsX509Cert::GetUsagesArray(PRBool ignoreOcsp, PRUint32 *verified, PRUint32 *count, PRUnichar ***usages)
  555. {
  556.     return NS_ERROR_NOT_IMPLEMENTED;
  557. }
  558.  
  559. /* void getUsagesString (in boolean ignoreOcsp, out PRUint32 verified, out AString usages); */
  560. NS_IMETHODIMP nsX509Cert::GetUsagesString(PRBool ignoreOcsp, PRUint32 *verified, nsAString & usages)
  561. {
  562.     return NS_ERROR_NOT_IMPLEMENTED;
  563. }
  564.  
  565. /* unsigned long verifyForUsage (in unsigned long usage); */
  566. NS_IMETHODIMP nsX509Cert::VerifyForUsage(PRUint32 usage, PRUint32 *_retval)
  567. {
  568.     return NS_ERROR_NOT_IMPLEMENTED;
  569. }
  570.  
  571. /* readonly attribute nsIASN1Object ASN1Structure; */
  572. NS_IMETHODIMP nsX509Cert::GetASN1Structure(nsIASN1Object * *aASN1Structure)
  573. {
  574.     return NS_ERROR_NOT_IMPLEMENTED;
  575. }
  576.  
  577. /* void getRawDER (out unsigned long length, [array, size_is (length), retval] out octet data); */
  578. NS_IMETHODIMP nsX509Cert::GetRawDER(PRUint32 *length, PRUint8 **data)
  579. {
  580.     return NS_ERROR_NOT_IMPLEMENTED;
  581. }
  582.  
  583. /* boolean equals (in nsIX509Cert other); */
  584. NS_IMETHODIMP nsX509Cert::Equals(nsIX509Cert *other, PRBool *_retval)
  585. {
  586.     return NS_ERROR_NOT_IMPLEMENTED;
  587. }
  588.  
  589. /* End of implementation class template. */
  590. #endif
  591.  
  592.  
  593. #endif /* __gen_nsIX509Cert_h__ */
  594.